<?php

namespace app\common\service;

use app\model\PlatformConfigModel;

class FileService
{
    /**
     * 获取文件完整URL
     * @param string $filePath 文件路径
     * @return string
     */
    public static function getFileUrl(string $filePath): string
    {
        try {
            // 获取阿里云OSS配置
            $ossConfig = PlatformConfigModel::getConfig('aliyun_oss');
            
            if (!$ossConfig) {
                throw new \Exception('阿里云OSS配置不存在');
            }
            
            // 验证必要的配置项
            if (!isset($ossConfig['RoleSessionName']) || !isset($ossConfig['regionId'])) {
                throw new \Exception('阿里云OSS配置缺少必要参数');
            }
            
            // 构建OSS域名：RoleSessionName + oss-cn + regionId + .aliyuncs.com
            $domain = $ossConfig['RoleSessionName'] . '.oss-cn-' . $ossConfig['regionId'] . '.aliyuncs.com';
            
            // 确保文件路径以/开头
            if (!str_starts_with($filePath, '/')) {
                $filePath = '/' . $filePath;
            }
            
            // 返回完整的HTTPS URL
            return 'https://' . $domain . $filePath;
            
        } catch (\Exception $e) {
            // 返回原始路径作为降级处理
            return $filePath;
        }
    }
}